package com.aqie.easy.string;

/**
 * 696 计数 二进制子串：计算具有相同数量0和1的非空(连续)子字符串的数量
 * 所有0和所有1都是组合在一起的  todo
 */
public class CountBinarySubstrings {
    /**
     * 1. 20ms
     * @param s
     * @return
     */
    public int countBinarySubstrings(String s) {
        //用于存放0和1的个数
        int i0 = 0; int i1 = 0;
        int ans = 0;
        //用来检测0与1的跳变处
        boolean flag = true;
        for(int i=0;i<s.length();i++) {
            if(s.charAt(i)=='0') {
                if(flag) {
                    i0=0;
                    flag = false;
                }
                i0++;
                if(i0<=i1)
                    ans++;
            }else
            {
                if(!flag) {
                    i1=0;
                    flag = true;
                }
                i1++;
                if(i1<=i0)
                    ans++;
            }
        }
        return ans;
    }

    public static void main(String[] args) {

    }
}
